restructured project with proper namespace