Separate CoreClientDelegate into several delegates and data sources
FileManager: support file system operation
Protocol: simplify protocol specification
Launcher: save custom app position