compile on surface