Added tests and made some classes testable =)