changed acceptors to use traits