all specs passing, implemented the features