I think it's all working... gotta run some tests