updated to match the interface