Suitable for compile