Moar types. Added tests