Refactored some internals

* Fields now show or hide based on if they are visible on the page