This is a different approach, but there are similarities. Could be easier to build and use this as well.