tidied up classes, added signup functionality