added declare and remainder