adding log4j; re-organize the source structure