this shit compiles

remember remember, not to circularly include shit
added a test case