Refactor Remote generation. User RemoteFactory for creating new Remote classes. :snowman: