add interfaces for dimension and position