SOOJS: Object Oriented JavaScript Pattern / Philosophy