nycu_np lazy to arrange :), the basic architecture is complete but not perfect (90% is correct), for reference only