orignally by DJ_Monkey_Pilot
nick added blocks