Working version but still needs organizing