separated project into separate modules