finished with basic functionality and styling