implemented the old spec