+ zoom precision and refactor