added functionality and design