code almost ready