move api functions together, entity.canon isa