Finished implementation, not yet compiling