added function overriding