New version, more efficient

Added interface with transpose. Made data private (_data), so access should be with get_data and set_data