updated to match specifications