code ready for compile