restructure + fix negative contents bug