prototype pattern = perfect; still using canvas -.-