make this thang a lot more robustier