updated from luna engine