Finished implementation. Includes nice flexible functionality.