Added an interface, fixed traits