extract POI-DP into seperated repository
begin clean up and refactoring