Author: faheem@manticsoftware.com