redesign and added functionality