working orange grove
refactored to oo js