added functionality of implements in spec