another work-in-progress copy, need to work on constructors and applications still