tried to make the flowchart layout, not working yet. Gate are now abstract and are dynamically built through contructor.