adding alot of things, needs tesing and futher implementation/editing