Updated for additional requirements