basicly inplement interfaces