full test coverage + leave some todos