Continuing the endless
Main thing here is an attempt to properly divide responsibility