base on beangle 3.3.4