Most requirements met, just cleaning up to do now