languages part (working but needs cleanup)