basic feature finish.TODO::refactor, fix inShape bug, settings.