main app should implement all interfaces