this and the five below should be inlined