all three implemented.