more work on procedures