added expiration, usernames and other stuff
finished everything. Just need testing.