major refactoring to encapsulate to Eye data structure