some day I will make this better