some own modifications