Week 3 part 2

* refactored code
* added macros
* added feature specs