Added a bunch of stuff, some needs implementation