initialisation and constructor have been added