closure block doesn't return self