adding inbuilt implementations