amend tests
use sane js inheritance patterns everywhere