modified the api directory architecture for future extending