completed all functionality, some minor fixes required such as validation. styling to follow