this is not very elegant .. should we define a new class for this?