Cleanup interfaces and formatting
Reorganise packages and classes