1. refactoring
2. db requests reduced
3. api extended