better factory
update test suite to to use new canvas namespace
better usage of canvas API