Still actually blocking, code way too complicated