it was rewritten entirely to make it simpler ... please could you also review it?