fix bug + add functions