implementing @properties