First pass at an implementation.