Finished assignment to spec

* passed freetests
* copied beautful style of old assignment