superfluous functions removed