Merged #3 and #4