wip, need to refactor :inherit.