changed the using_virtual() macro to virtual()
introduced a proper folder heirarchy to the project and created a makefile