use properties for all dependency versions, refactor maven project hierarchy