bug fix: add attributes to pageContext
finish all required functionalities