create distribution as part of mvn package.
add engine tests and refactor based on observations.