refactored into maven project