refactored subpage crud