Prototypes refactored + more spec added