start work on platform independent compiler chain