add builders, initial business logic, and initial unit tests