refactored to a maven manageable project