ok so it's not perfect