fixed business logic rules and exception