business logic complete