if/else fixed, pageElement rule changed to abstract