Add return statements to getters for chainability
Refactor list and group

Groups will be nested lists, so we can remove duplication and a
level of abstraction.
Make lists nestable