improved functionallity