initial implementation
synchronized with remote repo