Master's thesis for RPI department of computer science