completely reorganize everything