fixes ALL the mistakes