re-organized code base for submission