eliminate unneeded abstraction