Added bunchy of stuff, not fully tested yet