implement level requirements