first version with defineprop
added computed value ability