Added some new stuff, needs some design here and there