Fixed #665 Fixed #666 Fixed #667 Fixed #668 Fixed #669 Fixed #670 Fixed #671 Fixed #672