completely revampedthe classes
using ours