Working but a few annoying bugs.