Issue #1: Initial version
Moved generic framework into the main project, refactored the remote implementation accordingly