refactored: server & app components