added functionality and styling