added more to traits
rewrote partial functions