added pushing to server
refactored some code, reorganized packages