This looks good, might solve the above comment about method visibility.