Implement listing
Implement list api
Add tests
Move structs to separate package