implemented shape repository