Close #315 Close #312 Close #311