keep inline functions