I will write better documentation eventually