It looks like you've reinvented the wheel...