merge development branch

Why return `self`?