Works if no classes reference each other or if compiled in the right order

closes #2