major refactor to use maven
major refactor to maven