This is getting a bit long, might want to separate on different lines