made all tests pass apart from draw