abstract (unmodifyable) matrix