implemented shape context