change design(not singleton) and write createAccount and register