Deploy using docker
A lot of refactoring