Finished functionality for the users. Mostly finished now, might refactor later.