Author: Rick fogel and NA martin