some optimazions