W003 to W007 with some bug fix