Generalize view methods to not be layout specific

This PR satisfies #1 and #6.