create actual code

tests and code completed