Restructured project layout to follow Maven conventions
Added enum types where appropriate
Added log4j and properties template