tests javascript design-patterns and oo