clean up and flesh out requirements