refactor to improve Entry api