private members -> private functions, cleanup specs
handler arguments support item extra types
preserve this for private functions
closest() returns the closest parent
improve test coverage