First working version! Test coverage needs improving