almost done comilation