Refactor linear layers

Add zoom restrictions based on type