tests + TODO