finalize project structure, seperate out the views from ui interactions, work on magnet support BREAKING