add and fill function added