Fix #1, Fix #2, Fix #3, Fix #4