makes some proper use of prototypes
merge and prototype thing