additional require checks added