modified for usability