first thought about core interface